package cn.shop.admin.service;

import cn.shop.admin.entity.backUserModule.AdminMenuVO;
import cn.shop.admin.entity.backUserModule.BackUser;
import cn.shop.admin.entity.backUserModule.TransactionPasswordReq;
import cn.shop.base.MyService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 总后台角色表(BackUser)表服务接口
 *
 * @author jzw
 * @since 2021-11-02 11:35:13
 */
public interface BackUserService extends MyService<BackUser> {

	/**
	 * 批量设置内置账户
	 *
	 * @param idList 账户id
	 * @author jy
	 * @since 2022/1/17 14:50
	 */
	boolean setInitAccount(List<Long> idList);

	/**
	 * 启禁用账户
	 *
	 * @param accountId 账户id
	 * @return
	 * @author jy
	 * @since 2022/1/17 13:45
	 */
	boolean disOrEnaAccount(Long accountId);

	/**
	 * 新增一条用户信息
	 *
	 * @param backUser
	 * @return void
	 * @author jzw
	 * @since 2021/11/2 16:52
	 */
	boolean insert(BackUser backUser);

	/**
	 * 修改一条用户信息
	 *
	 * @param backUser
	 * @return void
	 * @author jzw
	 * @since 2021/11/2 16:52
	 */
	boolean update(BackUser backUser);

	/**
	 * 获取验证码
	 *
	 * @param response
	 * @return
	 * @author jzw
	 * @since 2021/11/4 14:03
	 */
	void verificationCode(HttpServletResponse response);


	/**
	 * 通过userId 获取权限code
	 *
	 * @param id
	 * @return
	 * @author jzw
	 * @since 2021/11/11 14:10
	 */
	List<String> roleCodeByUserId(Long id);


	/**
	 * 获取当前登录人菜单
	 *
	 * @param
	 * @return
	 * @author jy
	 * @since 2022/1/17 13:49
	 */
	List<AdminMenuVO> getMenuList();

	/**
	 * 设置交易密码
	 *
	 * @param transactionPasswordReq
	 * @return
	 * @author jzw
	 * @since 2022/2/23 14:59
	 */
	boolean setTransactionPassword(TransactionPasswordReq transactionPasswordReq);

}

